القائمة الرئيسية

الصفحات

الشروط والحلقات في بايثون | Python loops and conditions

مفهوم الشروط في بايثون

شروط: تعني conditions في اللغة الإنجليزية. و نستخدم الشروط لتحديد طريقة عمل البرنامج.
كما أنه يمكنك وضع العدد الذي تريده من الشروط في البرنامج الواحد, تستطيع وضع الشروط بداخل بعضها البعض أيضاً.

لا تقلق ستفهم كل شيء من الأمثلة.

جمل الشرط في بايثون

طريقة وضع الشروط (Syntax) :

if condition:
    # إذا كان الشرط صحيحاً نفذ هذا الكود

elif condition:
    # إذا كان الشرط صحيحاً نفذ هذا الكود

else:
    # إذا لم يتحقق أي شرط نفذ هذا الكود
	

ملاحظة

لست بحاجة إلى إستخدام الجمل الثلاثة في كل شرط تضعه في البرنامج, و لكنك مجبر على إستخدام جملة الشرط if مع أي شرط.
تابع كل الدرس حتى تتعرف على جميع طرق وضع الشروط.

أمثلة على جمل الشرط في بايثون

إسم الجملة دواعي الإستخدام
IF Statement if في اللغة العربية تعني " إذا ".
و هي تستخدم فقط في حال كنت تريد تنفيذ كود معين حسب شرط معين.
Else Statement else في اللغة العربية تعني " أي شيء آخر ".
و هي تستخدم فقط في حال كنا نريد تنفيذ كود معين في حال كانت نتيجة جميع الشروط التي قبلها تساوي false.
يجب وضعها دائماً في الأخير, لأنها تستخدم في حال لم يتم تنفيذ أي جملة شرطية قبلها.
Else IF Statement elif تستخدم إذا كنت تريد وضع أكثر من إحتمال ( أي أكثر من شرط ).
جملة أو جمل الـ elif يوضعون في الوسط, أي بين الجملتين if و else.


 أمثلة تطبيقية على جمل الشرط في بايثون

الجملة الشرطية if

الجملة if في اللغة العربية تعني " إذا ".
و هي تستخدم فقط في حال كنت تريد تنفيذ كود معين حسب شرط معين.


المثال الأول

إذا كانت قيمة المتغير S أكبر من 5 سيتم طباعة الجملة: &nbsp S is bigger than 5.

Test.py
S = 0

if S > 5:
    print('S is bigger than 5')
		

سنحصل على النتيجة التالية عند التشغيل.


هنا سأل نفسه التالي: هل قيمة المتغير S أكبر من 5؟
فكان جواب الشرط كلا ( false ) , لذلك لم ينفذ أمر الطباعة الموجود في الجملة الشرطية.


المثال الثاني

إذا كانت قيمة المتغير S أكبر من 5 سيتم طباعة الجملة: &nbsp S is bigger than 5.

Test.py
S = 30

if S > 5:
    print('S is bigger than 5')
		

سنحصل على النتيجة التالية عند التشغيل.

S is bigger than 5

هنا سأل نفسه التالي: هل قيمة المتغير S أكبر من 5؟
فكان جواب الشرط نعم (true), لذلك نفذ أمر الطباعة الموجود في الجملة الشرطية.

الجملة الشرطية else

الجملة else في اللغة العربية تعني " أي شيء آخر ".
و هي تستخدم فقط في حال كنا نريد تنفيذ كود معين في حال كانت نتيجة جميع الشروط التي قبلها تساوي false.

يجب وضعها دائماً في الأخير, لأنها تستخدم في حال لم يتم تنفيذ أي جملة شرطية قبلها.

إذاً, إذا نفذ البرنامج الجملة if أو else if فإنه سيتجاهل الجملة else.
و إذا لم ينفذ أي جملة من الجمل if و else if فإنه سينفذ الجملة else.


المثال الأول

إذا كانت قيمة المتغير S تساوي 5 سيتم طباعة الجملة: &nbsp S is equal 5.

إذا كانت قيمة المتغير S لا تساوي 5 سيتم طباعة الجملة: &nbsp S is not equal 5.

Test.py
S = 5

if S == 5:
    print('S is equal 5')

else:
    print('S is not equal 5')
		

سنحصل على النتيجة التالية عند التشغيل.

S is equal 5

هنا سأل نفسه التالي: هل قيمة المتغير S تساوي 5؟
فكان جواب الشرط نعم ( true ) , لذلك نفذ أمر الطباعة الموجود في الجملة if.


المثال الثاني

إذا كانت قيمة المتغير S تساوي 5 سيتم طباعة الجملة: &nbsp S is equal 5.

إذا كانت قيمة المتغير S لا تساوي 5 سيتم طباعة الجملة: &nbsp S is not equal 5.

Test.py
S = 20

if S == 5:
    print('S is equal 5')

else:
    print('S is not equal 5')
		

سنحصل على النتيجة التالية عند التشغيل.

S is not equal 5

هنا سأل نفسه التالي: هل قيمة المتغير S تساوي 5؟
فكان جواب الشرط كلا ( false ) , لذلك نفذ أمر الطباعة الموجود في الجملة else.

الجملة الشرطية elif

الجملة elif تستخدم إذا كنت تريد وضع أكثر من إحتمال ( أي أكثر من شرط ).

جملة أو جمل الـ elif يوضعون في الوسط, أي بين الجملتين if و else.


مثال

إذا كانت قيمة المتغير number تساوي 1 سيتم طباعة الكلمة: &nbsp one.
إذا كانت قيمة المتغير number تساوي 2 سيتم طباعة الكلمة: &nbsp two.
إذا كانت قيمة المتغير number تساوي 3 سيتم طباعة الكلمة: &nbsp three.
إذا كانت قيمة المتغير number أكبر أو تساوي 4 سيتم طباعة الجملة: &nbsp four or greater.
إذا كانت قيمة المتغير number أصغر من 0 سيتم طباعة الجملة: &nbsp negative number.

Test.py
number = 3

if number == 1:
    print('one')

elif number == 2:
    print('two')

elif number == 3:
    print('three')

elif number >= 4:
    print('four or greater')

else:
    print('negative number')
		

سنحصل على النتيجة التالية عند التشغيل.

three

هنا سأل نفسه التالي: هل قيمة المتغير number تساوي 1؟
فكان جواب الشرط كلا ( false ) , فانتقل إلى الشرط الذي يليه.

ثم سأل نفسه التالي: هل قيمة المتغير number تساوي 2؟
فكان جواب الشرط كلا ( false ) , فانتقل إلى الشرط الذي يليه.

ثم سأل نفسه التالي: هل قيمة المتغير number تساوي 3؟
فكان جواب الشرط هذه المرة نعم ( true ) , فقام بتنفيذ أمر الطباعة الموجود في الجملة الشرطية الثالثة, ثم تجاوز جميع جمل الشرط التي أتت بعده.

أفكار و أساليب أخرى لوضع الشروط في بايثون

طرق وضع الشروط عديدة و متنوعة, و يمكننا وضع شروط بداخل بعضها و يسمى ذلك Nested Conditional.
كما يمكننا وضع أكثر من شرط بداخل جمل الشرط if أو else if باستخدام العوامل المنطقية.



 وضع أكثر من شرط في الجملة if في بايثون

بإمكانك أن تضع أكثر من شرط بداخل جملة الشرط باستخدام العامل and أو or.

العامل and يستخدم في حال كنت تريد تنفيذ كود معين إذا كان جواب جميع الشروط الموضوعة يساوي true.
العامل or يستخدم في حال كنت تريد تنفيذ كود معين إذا كان جواب شرط واحد على الأقل يساوي true.


المثال الأول

إذا كانت قيمة المتغير a بين 0 و 20 إطبع الجملة: &nbsp acceptable number.

Test.py
a = 14;

if a >= 0 and a <= 20:
    print("acceptable number")
		

سنحصل على النتيجة التالية عند التشغيل.

acceptable number

نلاحظ أنه قد تم تنفيذ أمر الطباعة لأن قيمة المتغير a بين 0 و 20

هنا سأل نفسه سؤالين.

السؤال الأول: هل قيمة المتغير a أكبر أو تساوي 0؟
فكان جواب الشرط الأول true.

السؤال الثاني: هل قيمة المتغير a أصغر أو تساوي 20؟
فكان جواب الشرط الثاني أيضاً true.

بما أن كلا الجوابين كانا true قام بتنفيذ أمر الطباعة.



المثال الثاني

إذا كانت قيمة المتغير a بين 0 و 20 إطبع الجملة: &nbsp acceptable number.

Test.py
a = 26;

if a >= 0 and a <= 20:
    print('acceptable number')
		

سنحصل على النتيجة التالية عند التشغيل.


نلاحظ أنه لم يتم تنفيذ أمر الطباعة لأن قيمة المتغير a ليست بين 0 و 20

هنا سأل نفسه سؤالين.

السؤال الأول: هل قيمة المتغير a أكبر أو تساوي 0؟
فكان جواب الشرط الأول true.

السؤال الثاني: هل قيمة المتغير a أصغر أو تساوي 20؟
فكان جواب الشرط الثاني false.

بما أن واحداً من الجوابين لم يكن true لم ينفذ دالة الطباعة.



المثال الثالث

إذا كانت قيمة المتغير a تساوي 1 أو 2 أو 3 إطبع الجملة: &nbsp you choose a valid number.

Test.py
a = 2

if a == 1 or a == 2 or a == 3:
    print('you choose a valid number')
		

سنحصل على النتيجة التالية عند التشغيل.

you choose a valid number

نلاحظ أنه قام بتنفيذ أمر الطباعة لأن قيمة المتغير a تساوي 2

هنا سأل كان سيسأسل نفسه ثلاثة أسئلة لأنه يوجد ثلاث شروط, لكنه سأل نفسه سؤالين فقط.

السؤال الأول: هل قيمة المتغير a تساوي 1؟
فكان جواب الشرط الأول false فانتقل للشرط الذي يليه.

السؤال الثاني: هل قيمة المتغير a تساوي 2؟
فكان جواب الشرط الثاني true.

بما أن واحداً من الأجوبة كان true نفذ مباشرةً أمر الطباعة و لم ينظر حتى للشرط الأخير.

 وضع شرط بداخل شرط آخر في بايثون

وضع شرط بداخل شرط

نستطيع وضع الشروط بداخل بعضها, و يمكننا وضع العدد الذي نريده من الشروط.
في البرامج الفعلية يقوم المبرمج بوضع العديد من الشروط بداخل بعضها, و ذلك حسب الفكرة التي يريد تنفيذها في برنامجه, و سنعطيك مثال بسيط يعلمك كيف تفكر و تحلل.


الآن لنفترض أننا نريد تحويل هذه الصورة إلى برنامج

مثال

في البداية عندنا متغير يمثل الجنس إسمه sex و متغير يمثل العمر إسمه age.

Test.py
sex = 'female'
age = 14

if sex == 'male':
    print('Gender: male')
    if age <= 21:
        print('he is a young boy');

elif sex == 'female':
    print('Gender: female')
    if age <= 21:
        print('she is a young girl')
		

سنحصل على النتيجة التالية عند التشغيل.

Gender: female
she is a young girl

هنا سأل نفسه التالي: هل قيمة المتغير sex تساوي male؟
فكان جواب الشرط false , فانتقل إلى جملة الشرط الثانية elif.

هنا سأل نفسه التالي: هل قيمة المتغير sex تساوي female؟
فكان جواب الشرط true , فقام بتنفيذ دالة الطباعة الموجودة فيها, فطبع الجملة &nbsp Gender: female.

ثم وجد شرطاً آخر بداخل الشرط السابق, فسأل نفسه التالي: هل قيمة المتغير age أصغر أو تساوي 21؟
فكان جواب الشرط true , فقام بتنفيذ دالة الطباعة الموجودة فيها, فطبع الجملة &nbsp she is a young girl.

 الحلقات في بايثون

مفهوم الحلقات في بايثون

حلقة: تعني Loop في اللغة الإنجليزية. نستخدم الحلقات لعدم تكرار نفس الكود عدة مرات, إذاً أي كود نريده أن يتنفذ عدة مرات, نقوم بكتابته داخل حلقة فتقوم هي بإعادة تنفيذ الكود قدر ما شئنا ضمن شروط معينة نقوم نحن بتحديدها.


طريقة تنفيذ الأوامر و الحلقات في الذاكرة

الأوامر في العادة تتنفذ بتسلسل وراء بعضها, و لكن الحلقات تجعل سهم تنفيذ الأوامر يقف عندها فيقوم بتنفيذ الأوامر التي بداخلها عدة مرات, و بعد أن يخرج من الحلقة يعود و يكمل تنفيذ باقي الأوامر التي تليها, كما في الصورة التالية:

الحلقات الموجودة في بايثون

إسم الحلقة دواعي الإستخدام
For Loop تستخدم الحلقة for للمرور على جميع عناصر السلسلة أو المصفوفة بسهولة بدون الحاجة لتعريف عداد و تحديد أين يبدأ و أين ينتهي.
و تستخدم لتنفيذ الكود عدة مرات محددة.
تابع القراءة »
While Loop تستخدم الحلقة while لتنفيذ الكود عدة مرات غير محددة و يتوقف التنفيذ إذا تحقق شرط معين, لأن هذه الحلقة يتم توقيفها إذا تحقق الشرط الذي نضعه بين القوسين.
تابع القراءة »

جمل التحكم في الحلقات في بايثون

جمل التحكم تعني Control Statements بالإنجليزية, و نستخدمهم للتحكم في سير تنفيذ الحلقات.

جملة التحكم تعريفها
Break Statement الجملة break تستخدم بشكل عام لإيقاف الحلقة في حال تحقق شرط معين. ثم تنتقل للكود الذي يليها في البرنامج.

Continue Statement الجملة continue تستخدم بشكل عام لإيقاف الدورة الحالية في الحلقة و الإنتقال إلى الدورة التالية فيها في حال تحقق شرط معين.

الوصول للأشياء التي تم تعريفها بداخل الحلقة من الخارج في بايثون

في أغلب لغات البرمجة لا يمكن الوصول للأشياء التي تم تعريفها داخل الحلقة من الخارج, أما في بايثون فإنه بإمكانك الوصول لهم.

مثال

Test.py
# بعدها سيتم عرضه .n هنا قمنا بإنشاء سلسلة من الأرقام الموجودة بين 1 إلى 5. في كل دورة في الحلقة سيتم جلب رقم من هذه السلسلة و تخزينه في المتغير
for n in range(1, 6):
    print(n)

# بعد أن توقفت الحلقة n هنا عرضنا القيمة الموجودة في المتغير
print('n contains:', n )
		

سنحصل على النتيجة التالية عند التشغيل

1
2
3
4
5
n contains: 5

إذاً لاحظنا أننا استطعنا معرفة القيمة الأخيرة التي تم وضعها في المتغير n الذي تم تعريفه في الأساس بداخل الحلقة for خارجها.

 الحلقة for في بايثون

تعريف الحلقة for في بايثون

نستخدم الحلقة for للمرور على جميع عناصر السلسلة أو المصفوفة بسهولة بدون الحاجة لتعريف عداد و تحديد أين يبدأ و أين ينتهي.
تستخدم لتنفيذ الكود عدة مرات محددة.


طريقة إستخدامها

for element in sequence:
&nbsp &nbsp statements

  • element: هو متغير عادي نقوم بتعريفه بداخل الحلقة. في كل دورة سيتم جلب قيمة من قيم السلسلة الموضوعة بعده و وضعها فيه.

  • sequence: هي السلسلة أو المصفوفة التي نريد الوصول لجميع عناصرها.

  • statements: هي جميع الأوامر الموضوعة في الحلقة و هي تتنفذ في كل دورة.

إذاً هنا تقوم الحلقة بالمرور على جميع عناصر المصفوفة بالترتيب من العنصر الأول إلى العنصر الأخير, و في كل دورة تقوم بتخزين قيمة العنصر في المتغير الذي قمنا بتعريفه.



معلومة تقنية

الحلقة for في بايثون تعمل كما تعمل الحلقة ForEach في لغات البرمجة الأخرى.

أمثلة حول الحلقة for في بايثون

سنقوم الآن بكتابة برنامج بسيط يعرض قيم جميع عناصر مصفوفة باستخدام الحلقة for.

المثال الأول

Test.py
# تحتوي على 7 عناصر days هنا قمنا بتعريف مصفوفة إسمها
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

# بعدها سيتم عرض قيمته ,day في المتغير days هنا في كل دورة سيتم تخزين قيمة عنصر جديد من عناصر المصفوفة
for day in days:
    print(day)
		

سنحصل على النتيجة التالية عند التشغيل

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

سنقوم الآن بكتابة برنامج يمر على أحرف النص و يعرضهم حرفاً حرفاً باستخدام الحلقة for.
معلومة: النص بطبيعته يمثل سلسلة من الأحرف لذلك بايثون تتيح لك فعل هذا بسهولة.

المثال الثاني

Test.py
# هنا منا بتعريف متغير يحتوي على نص, أي يحتوي على سلسلة من الأحرف
sentence = 'Python is amazing'

# بعدها سيتم عرضه .letter في كل دورة في الحلقة سيتم جلب حرف من هذا النص و تخزينه في المتغير
for letter in sentence:
    print(letter)
		

سنحصل على النتيجة التالية عند التشغيل

P
y
t
h
o
n

i
s

a
m
a
z
i
n
g

الدالة range() في بايثون

سنستخدم الدالة range() في الأمثلة التالية لأنها ترجع سلسلة من الأرقام.
عند إستدعاء هذه الدالة يجب تمرير قيمة, أو قيمتين, أو ثلاث قيم لها كـ Arguments.

في حال مررت لها قيمة واحدة مثل range(5) فإنها سترجع سلسلة من الأرقام تبدأ من 0 إلى 4.
إذاً سترجع 0 ثم 1 ثم 2 ثم 3 ثم 4.

في حال مررت لها قيمتين مثل range(1, 5) فإنها سترجع سلسلة من الأرقام تبدأ من 1 إلى 4.
إذاً سترجع 1 ثم 2 ثم 3 ثم 4.

في حال مررت لها ثلاث قيم مثل range(1, 5, 2) فإنها سترجع سلسلة من الأرقام تبدأ من 1 إلى 4 و تزيد إثنين كل مرة.
إذاً سترجع 1 ثم 3.

طريقة إستخدام الدالة range() مع الحلقة for في بايثون

المثال التالي يشرح طريقة إستخدام الدالة range() لجعل الحلقة for كأنها تعدّ.

المثال الأول

Test.py
# بعدها سيتم عرضه .n هنا قمنا بإنشاء سلسلة من الأرقام الموجودة بين 1 إلى 5. في كل دورة في الحلقة سيتم جلب رقم من هذه السلسلة و تخزينه في المتغير
for n in range(1, 6, 1):
    print(n)
		

سنحصل على النتيجة التالية عند التشغيل

1
2
3
4
5

ملاحظة: هنا كان يمكننا كتابة range(1, 6) بدلاً من كتابة range(1, 6, 1) و الحصول على نفس النتيجة.


المثال التالي يشرح طريقة إستخدام الدالة range() لجعل الحلقة for كأنها تعدّ بشكل عكسي, أي تبدأ من أكبر عدد فيها إلى أصغر عدد فيها.

المثال الثاني

Test.py
# بعدها سيتم عرضه .n هنا قمنا بإنشاء سلسلة من الأرقام الموجودة بين 5 إلى 1. في كل دورة في الحلقة سيتم جلب رقم من هذه السلسلة و تخزينه في المتغير
for n in range(5, 0, -1):
    print(n)
		

سنحصل على النتيجة التالية عند التشغيل

5
4
3
2
1

الـ -1 الموضوعة في الدالة range() تعني أن سلسلة الأرقام تقل واحداً في كل مرة.
لهذا السبب وجدنا أن الدالة range() أرجعت سلسلة الأرقام التالية: 5, 4, 3, 2, 1.

 الحلقة while في بايثون

تعريف الحلقة while في بايثون

نستخدم الحلقة while إذا كنا نريد تنفيذ الكود عدة مرات, ولكننا لا نعرف كم مرة بالتحديد لأننا نريد إيقاف التنفيذ إذا تحقق شرط معين.
هذه الحلقة تتوقف عن تكرار نفسها إذا تحقق الشرط الذي وضعناه لها.

هنا كأننا نقول: " طالما أن الشرط لم يتحقق إستمر في تكرار الكود ".


طريقة إستخدامها

initialisation;

while condition:
&nbsp &nbsp statements
&nbsp &nbsp increment أو decrement;

  • initialisation: &nbsp هي أول خطوة تتنفذ في الحلقة و هي تتنفذ مرة واحدة فقط على عكس جميع العناصر الموجودة في الحلقة.
    في هذه الخطوة نقوم بتعريف متغير ( يسمى عداد ).


  • condition: &nbsp هي ثاني خطوة تتنفذ في الحلقة و هي تتنفذ في كل دورة.
    في هذه الخطوة نقوم بوضع شرط يحدد متى تتوقف الحلقة, في كل دورة يتم التأكد أولاً إذا تحقق هذا الشرط أم لا.
    هنا طالما أن نتيجة الشرط تساوي true سيعيد تكرار الكود.


  • statements: &nbsp هي الخطوة الثالثة, و تعني تنفيذ جميع الأوامر الموجودة في الحلقة و هي تتنفذ في كل دورة.


  • (decrement أو increment): &nbsp هي الخطوة الرابعة و الأخيرة, و هي تتنفذ في كل دورة.
    هنا نحدد كيف تزداد أو تنقص قيمة العداد.


تذكر فقط أن جميع هذه الخطوات تتكرر في كل دورة ما عدا أول خطوة, و السبب أننا لا نحتاج إلى تعريف عداد جديد في كل دورة, بل نستعمل العداد القديم و الذي من خلاله نعرف في أي دورة أصبحنا.

مثال حول الحلقة while في بايثون

في المثال التالي قمنا بتعريف حلقة تطبع جميع الأرقام من 1 إلى 10.
في البداية قمنا بتعريف متغير إسمه i و أعطينها القيمة 1 لأننا سنستخدمه كعداد في الحلقة.
بعدها قمنا بإنشاء حلقة while تظل تنفذ الأوامر الموضوعة فيها طالما أن قيمة العداد i لا تزال أصغر أو تساوي 10.
في كل دورة في هذه الحلقة سيتم طباعة قيمة العداد i ثم إضافة 1 على قيمته.

مثال

Test.py
i = 1

while i <= 10:
    print(i)
    i += 1
		

سنحصل على النتيجة التالية عند التشغيل.

1
2
3
4
5
6
7
8
9
10

مثال حول إستخدام الجملة الشرطية else مع الحلقة while في بايثون

يمكنك وضع الجملة الشرطية else مباشرةً بعد الحلقة while لتنفيذ بلوك من الكود ( مجموعة أوامر ) مباشرةً عندما تتوقف الحلقة عن إعادة تنفيذ الكود الموضوع فيها, أي عندما يصبح جواب الشرط الذي يجعلها تستمر في إعادتها نفسها طالما هو True يساوي False.

مثال

Test.py
i = 1

while i <= 10:
    print(i)
    i += 1
else:
    print('This block is executed when the condition return False!')
		

سنحصل على النتيجة التالية عند التشغيل.

1
2
3
4
5
6
7
8
9
10
This block is executed when the condition return False!

تذكر: الكود الموضوع في بلوك الجملة else سيتنفذ دائماً بعد أن تتوقف الحلقة عن العمل, و سيتنفذ أيضاً حتى لو تتنفذ الحلقة من الأساس.
لتتأكد من هذا الأمر, قم بإعطاء المتغير i القيمة 100 بدل القيمة 1 و لاحظ أيضاً أنه سينفذ أمر الطباعة الموضوع في البلوك else.

طريقة إنشاء حلقة لا تتوقف (Infinite Loop) في بايثون


تحذير

قبل تجربة الأمثلة التالية على الحاسوب عليك معرفة أن الـ (Infinite Loop) قد تجعله يعلّق أو قد تسبب في حرق المعالج إذا لم يتم إيقاف الكود يدوياً خلال وقت قصير.


الصورة التالية توضح طريقة إيقاف أي برنامج يدوياً بعد أن يتم تشغيله.



طريقة إنشاء حلقة لا تتوقف عن استداعاء نفسها.

المثال الأول

Test.py
while 1 == 1:
    print('I am stuck!')
		

سنحصل على النتيجة التالية عند التشغيل.

I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!

طريقة إنشاء حلقة لا تتوقف عن استداعاء نفسها.

المثال الثاني

Test.py
while True:
    print('I am stuck!')
		

سنحصل على النتيجة التالية عند التشغيل.

I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!

طريقة إنشاء حلقة لا تتوقف عن استداعاء نفسها.

المثال الثالث

Test.py
flag = True

while flag = True:
    print('I am stuck!')
		

سنحصل على النتيجة التالية عند التشغيل.

I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!

 جملة التحكم break في بايثون

مفهوم الجملة break في بايثون

الجملة break تستخدم بشكل عام لإيقاف الحلقة في حال تحقق شرط معين. ثم تنتقل للكود الذي يليها في البرنامج.


طريقة إستخدامها

تتألف هذه الجملة من أمر واحد و يكتب على سطر منفرد.

break

أمثلة حول طريقة استخدام جملة التحكم break في بايثون


في المثال التالي قمنا بتعريف حلقة while كانت ستطبع جميع الأرقام من 1 إلى 10 لولا أننا إستخدمنا الجملة break لجعل الحلقة تتوقف عندما تصبح قيمة العداد counter تساوي 5.

المثال الأول

Test.py
counter = 1

while counter <= 10:
    print(counter)
    if counter == 5:
        break
    counter += 1

print('The loop was stopped when counter =', counter)
		

سنحصل على النتيجة التالية عند التشغيل.

1
2
3
4
5
The loop was stopped when counter = 5

إذاً الجملة break جعلت الحلقة تتوقف عندما أصبحت قيمة العداد counter تساوي 5.



في المثال التالي قمنا بتعريف حلقة for كانت ستطبع جميع الأرقام من 1 إلى 10 لولا أننا إستخدمنا الجملة break لجعل الحلقة تتوقف عندما تصبح قيمة الـ n تساوي 5.

المثال الثاني

Test.py
for n in range(1, 11):
    print(n)
    if n == 5:
        break

print('The loop was stopped when n =', n)
		

سنحصل على النتيجة التالية عند التشغيل.

1
2
3
4
5
The loop was stopped when n = 5

إذاً الجملة break جعلت الحلقة تتوقف عندما أصبحت قيمة المتغير n تساوي 5.

 جملة التحكم continue في بايثون

مفهوم الجملة continue في بايثون

الجملة continue تستخدم بشكل عام لإيقاف الدورة الحالية في الحلقة و الإنتقال إلى الدورة التالية فيها في حال تحقق شرط معين.


طريقة إستخدامها

تتألف هذه الجملة من أمر واحد و يكتب على سطر منفرد.

continue

أمثلة حول طريقة استخدام جملة التحكم continue في بايثون


في المثال التالي قمنا بتعريف حلقة for كانت ستطبع جميع الأرقام من 1 إلى 5 لولا أننا إستخدمنا الجملة continue لجعل الحلقة تنتقل للدورة التالية عندما تصبح قيمة n تساوي 3.

المثال الأول

Test.py
for n in range(1, 6):
    if n == 3:
        continue
    print(n)
		

سنحصل على النتيجة التالية عند التشغيل.

1
2
4
5

إذاً الجملة continue جعلت الحلقة تنتقل للدورة التالي عندما أصبحت قيمة المتغير n تساوي 3.



في المثال التالي قمنا بتعريف حلقة تطبع جميع الأرقام المفردة من 1 إلى 10.
إستخدمنا الجملة continue لجعل الحلقة تتجاوز كل دورة تكون فيها قيمة المتغير n عبارة عن عدد مزدوج.

المثال الثاني

Test.py
for n in range(1, 11):
    if n % 2 == 0:
        continue
    print(n)
		

سنحصل على النتيجة التالية عند التشغيل.

1
3
5
7
9

إذاً الجملة continue جعلت الحلقة تتجاوز كل دورة كانت فيها قيمة المتغير n عبارة عن عدد مفرد.



في المثال التالي قمنا بتعريف حلقة تمر على جميع أحرف النص المخزن في المتغير sentence.
في هذه الحلقة إستخدمنا الجملة continue لتجاوز كل دورة تكون فيها قيمة المتغير n تساوي الحرف a.

المثال الثالث

Test.py
sentence = 'harmash'

for c in sentence:
    if c == 'a':
        continue
    print(c)
		

سنحصل على النتيجة التالية عند التشغيل.

h
r
m
s
h

إذاً الجملة continue جعلت الحلقة تتجاوز كل دورة كانت فيها قيمة المتغير n تساوي الحرف a.